package com.kqb.pojo.dto;

import com.kqb.common.group.ApiGroups;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CustomerDTO {

    @ApiModelProperty("页码")
    int page;

    @ApiModelProperty("每页展示条数")
    int pageSize;

    @NotNull(groups = {ApiGroups.Update.class},message = "不能为空!")
    @Min(groups = {ApiGroups.Update.class}, value = 1 ,message = "id传递内容有误!")
    @ApiModelProperty("主键,id,非空唯一")
    private Integer id;

    @NotEmpty(groups = {ApiGroups.Save.class}, message="不能为空!")
    @Length(groups = {ApiGroups.Save.class},message = "账户格式有误")
    @ApiModelProperty("账户")
    private String account;

    @ApiModelProperty("密码")
    @Length(groups = {ApiGroups.Save.class},message = "密码格式有误")
    @NotEmpty(groups = {ApiGroups.Save.class}, message="不能为空!")
    private String password;

    /**
     * 1 平台用户
     2 客户
     3 供应商
     4 货代
     */
    @ApiModelProperty("客户类型")
    private Byte type;

    @ApiModelProperty("创建时间")
    private Date createdAt;

    @ApiModelProperty("更新时间")
    private Date updatedAt;

    /**
     * 1 正常
     2 禁用
     3..。。
     */
    @ApiModelProperty("账号状态 1 正常 2 禁用")
    private Byte status;

    /**
     * 0 未删除
     1 已删除
     */
    @ApiModelProperty("是否删除 0 正常 1 删除")
    private String isDeleted;

    /**
     * 1 内销
     2 外销
     */
    @ApiModelProperty("市场")
    private Integer market;

    /**
     * 1 国内
     2 国外
     */
    @ApiModelProperty("国家")
    private Integer country;

    @ApiModelProperty("公司")
    private String company;

    @ApiModelProperty("机型")
    private String model;

    @ApiModelProperty("成交或询价产品")
    private String products;

    @ApiModelProperty("感兴趣的产品")
    private String interestProduct;

    @ApiModelProperty("感兴趣产品id")
    private Integer productId;

    @ApiModelProperty("客户联系人")
    private String contacts;

    @ApiModelProperty("客户联系手机")
    private String phone;

    @ApiModelProperty("客户邮箱")
    private String email;

    @ApiModelProperty("老板联系人")
    private String boss;

    @ApiModelProperty("老板联系手机")
    private String bossPhone;

    @ApiModelProperty("老板邮箱")
    private String bossEmail;

    @ApiModelProperty("联系地址")
    private String address;

    @ApiModelProperty("客户目的港口")
    private String targetPort;

    /**
     * 1 小型最终用户
     2 大型最终用户
     3 专业分销商
     4 杂牌分销商
     5 最终用户兼职分销商
     6 主机厂
     7 其他类
     */
    @ApiModelProperty("客户分类")
    private Integer segmentation;

    /**
     * 1 合作客户
     2 潜在客户
     */
    @ApiModelProperty("客户类型")
    private Integer customerType;

    @ApiModelProperty("公司简介")
    private String companyProfile;

    @ApiModelProperty("客户目的地")
    private String destination;

    /**
     * 1 一致
     2 不一致
     */
    @ApiModelProperty("目的地和快递地是否一致")
    private Integer consistent;

    @ApiModelProperty("快递地址")
    private String courierAddress;

    @ApiModelProperty("密码验证手机号")
    private String verifyPhone;

    /**
     * 1 客户注册
     2 销售添加
     3 管理员添加
     */
    @ApiModelProperty("来源")
    private Integer source;

    /**
     * 0 表示未填写
     */
    @ApiModelProperty("所属销售")
    private Integer saleId;

}
